import axios from 'axios'
import { message } from 'antd'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

NProgress.configure({ showSpinner: false });

// const BASE_URL = "http://82.157.137.75:3000/"
const BASE_URL = "http://localhost:3001"
const TIMEOUT = 10000
const instance = axios.create({
  baseURL: BASE_URL,
  timeout: TIMEOUT
});

instance.interceptors.request.use(config => {
  NProgress.start()
  // 1.发送网络请求时, 在界面的中间位置显示Loading的组件

  // 2.某一些请求要求用户必须携带token, 如果没有携带, 那么直接跳转到登录页面

  // 3.params/data序列化的操作

  return config;
}, err => {

});

instance.interceptors.response.use(res => {
  NProgress.done()
  if (res.data.code === 200) {
    return res.data;
  } else {
    // console.dir(res.data);
    message.error(res.data.msg || "未知错误，请检查请求");
    return Promise.reject(new Error(res.data.msg || "未知错误，请检查请求"))
  }

}, err => {
  console.log("请求报错的信息");
  console.dir(err);
  console.log('请求保错信息结束');
  if (err.response && err.response.data.code !== 200) {
    message.error(err.response.data.msg);

  }
  NProgress.done()
  return Promise.reject(err)
}

);

export default instance;
